Al Brooks II.IOI.OO# Al Brooks Consecutive Bar Patterns (II/OO/IOI)
## Overview
This indicator automatically identifies Al Brooks' key consecutive bar patterns that signal important market transitions. Enhanced with both **traditional (high/low)** and **body (open/close)** detection methods for more accurate signals.
## Pattern Definitions
### 📊 II Pattern - Double Inside Bars
- **Signal**: Two consecutive inside bars
- **Market Meaning**: Volatility contraction, breakout pending
- **Trading**: Wait for breakout, trade with momentum
### 📊 OO Pattern - Double Outside Bars
- **Signal**: Two consecutive outside bars
- **Market Meaning**: Volatility expansion, trend acceleration or reversal
- **Trading**: Watch for exhaustion at key levels
### 📊 IOI Pattern - Inside-Outside-Inside
- **Signal**: Inside bar → Outside bar → Inside bar sequence
- **Market Meaning**: Market indecision, complex consolidation
- **Trading**: Avoid early entries, wait for clear direction
## Features
✅ **Dual Detection System**
- Traditional: Uses high/low prices (catches wicks)
- Body: Uses open/close prices (focuses on real trading range)
- Combined: Triggers when either condition is met
✅ **Visual Markers**
- Clear labels above/below bars
- Color-coded backgrounds
- Detection source indicators (h=high/low, b=body, +=both)
✅ **Smart Alerts**
- Real-time pattern detection
- Separate alerts for body-only patterns
- Customizable notification settings
## Settings
**Display Options**
- Show/hide each pattern type
- Toggle detection methods
- Customize colors
**Detection Modes**
- High/Low Detection: Traditional wick-based
- Body Detection: Open/Close based
- Show Source: Display what triggered the pattern
## Trading Tips
1. **Best Timeframes**: 1H, 4H, Daily
2. **Combine with**: Volume, trend indicators, support/resistance
3. **Risk Management**:
- II: Tight stops inside pattern
- OO: Wider stops due to volatility
- IOI: Scale in positions
## Label Meanings
- `ii` / `OO` / `ioi` = Base pattern detected
- `+h` suffix = High/Low triggered
- `+b` suffix = Body triggered
- `++` suffix = Both conditions met (strongest signal)
## Author Notes
Based on Al Brooks' price action methodology from his Trading Price Action series. This enhanced version adds body detection to filter out wick-only patterns and reduce false signals.
---
*For educational purposes only. Trading involves risk.*
**Version 2.0** | **Pine Script v6** | **@JimmC98**
Cerca negli script per "inside bar"
Three Inside [TradingFinder] 3 Inside Up & Down Chart Patterns🔵 Introduction
"3 inside up" and "3 inside down" denote a duo of candlestick reversal patterns, each comprising three individual candles, commonly observed on candlestick charts.
These patterns manifest as a sequence of three candles, signaling a potential loss of momentum in the current trend and a potential reversal in direction.
This pattern consists of 3 consecutive candles and can be either "bullish" or "bearish".
In the bullish pattern, known as "Inside Up," emerging at the conclusion of a downtrend, the final candle must exhibit bullish characteristics, while the third candle from the end must display bearish traits.
Conversely, in the bearish pattern, termed "Inside Down," occurring at the culmination of an uptrend, the last candle must demonstrate bearish behavior, with the third candle from the end reflecting bullish attributes.
🔵 How to Use
Using this indicator is very simple. Filtering "Strong 3 Inside Bar" and "Weak 3 Inside Bar" is a feature available in the settings section. You can turn the filter "On" or "Off." By default, the "Filter" is set to "On."
" Filter: On ":
" Filter: Off ":
🔵 How to Display
For better display and differentiation of "Strong 3 Inside Bar" and "Weak 3 Inside Bar," when the "Filter: On" is active, the 3 Inside Bars are displayed in green and red colors. When the "Filter: Off" is active, the 3 Inside Bars are displayed in blue and black colors.
VWAP forex Yesterday Hi/Low update fix This script is an updte fix of an earlier script that stopped functioning when TradingView updated Pine script. This script plots Forex (24 hour session) VWAP, yesterday's high, low, open and close (HLOC),
the day before's HLOC -
Also plots higher timeframe 20 emas
1 minute 5, 15, 60 period 20 ema
5 minute 15, 60 period 20 ema
15 minute 60, 120 , 240 period 20 ema
60 minute 120, 240 period 20 ema
120 minute 240, D period 20 ema
240 minute D period 20 ema
Also signals inside bars (high is less than or equal to the previous bar's high and the low is greater than or equal to the previous low) the : true inside bars have a maroon triangle below the bar as well as a ">" above the bar.
If subsequest bars are inside the last bar before the last true inside bar they also are marked with an ">"
This is probably a slight variation from the way Leaf_West plots the inside bars.
It appears that he marks all bars that are inside the original bar until one a bar has a high or low
outside the original bar. But I would need to see an example on his charts.
The Time Session Glitch and the Fix FX_IDC, COINBASE and BITSTAMP:
The script will correctly default to 1700 hrs to 1700hrs EDT/EST session for FXCM.
Strangely some securities appear to erroneously start their session at 1200 hrs ie. My guess is that they are somehow tied to GMT+0 instead of New York time (GMT+5). See this for yourself by selecting EURUSD using the FXCM exchange (FX:EURUSD) and then EURUSD from the IDC exchange (FX_IDC:EURUSD). The FX-IDC session opening range starts 5 hours before it actually should at 1700 hrs EDT/EST. To correct for this I have implemented an automatic fix (default) and a user selected "5 hour time shift adjust. ment needed on some securities".
There is also a 4 hour time shift button which might be necessary when New York reverts from Eastern Standard Time to Eastern Daylight Time (1 hour difference) in March (and then back again in November). In the default auto adjust mode you will need to select the 1 hour time shift. That is if this glitch still exists at that time.
I have looked at other scripts, other than my own and where the script is available, that need to use information about the opening bar and all have the same time shift issue
COINBASE and BITSTAMP open at 0000 hours GMT. Since I use lines instead of circles or crosses I had to make a small adjustment to plot the lines correctly.
If it needs work let me know.
Jayy
Inside/Outside Bar Sequence Detector# Inside/Outside Bar Sequence Detector
## English Description
**Inside/Outside Bar Sequence Detector**
This indicator identifies and visualizes sequences of Inside and Outside bars on any chart. It highlights important price action patterns that can signal potential market reversals or continuation moves.
**Key Features:**
- Automatically detects consecutive Inside bars (where price action is contained within the previous bar's range) and Outside bars (where price action exceeds the previous bar's range)
- Displays sequences with customizable labels showing the pattern type
- Highlights the price range of each sequence with a transparent box
- Marks individual Inside bars with "i" and Outside bars with "o" below each candle
- Applies special pattern recognition rules for more accurate trade signals
- Fully customizable appearance including colors, opacity, and label positioning
Adjust the minimum sequence length according to your trading timeframe and strategy to filter out noise and focus on significant patterns.
## 中文描述
**内包/外包K线序列检测器**
这个指标可以识别并可视化任何图表上的内包和外包K线序列。它突出显示重要的价格行为模式,这些模式可能预示市场潜在的反转或延续走势。
**主要特点:**
- 自动检测连续的内包K线(价格活动被限制在前一根K线范围内)和外包K线(价格活动超出前一根K线范围)
- 通过可自定义的标签显示模式类型
- 用透明框突出显示每个序列的价格范围
- 在每根K线下方用"i"标记内包蜡烛,用"o"标记外包蜡烛
- 应用特殊模式识别规则,提供更准确的交易信号
- 完全可自定义的外观,包括颜色、透明度和标签位置
根据您的交易时间框架和策略调整最小序列长度,以过滤噪音并专注于重要模式。
EMA with Bar Count
---
### **Key Features and Functionalities**
#### 1. **Multi-Timeframe Exponential Moving Averages (EMA)**
- The script calculates and plots EMAs for various timeframes (e.g., 1 minute, 5 minutes, 60 minutes, daily, and custom intervals).
- Users can customize the length and resolution of each EMA using inputs.
- Different colors are assigned to each EMA for easy identification on the chart.
#### 2. **Background Coloring**
- Optional background coloring (`bgcolor`) indicates whether the current price is above or below the 1-hour 20 EMA.
- Green indicates the price is above, and red indicates the price is below the EMA.
#### 3. **Bar Count Labeling**
- The script tracks bar counts and displays labels at specific intervals (e.g., every 3 bars).
- Label size and text color can be customized through user inputs.
#### 4. **Inside and Outside Bar Detection**
- Detects and highlights "Inside Bars" and "Outside Bars" on the chart.
- **Inside Bar**: The current bar's high and low are within the previous bar's range.
- **Outside Bar**: The current bar's range exceeds the previous bar's range.
- These patterns are marked with shapes for visual identification.
#### 5. **Bullish/Bearish Candle Streaks**
- Identifies and marks streaks of three consecutive bullish or bearish candles.
- **Bullish Streaks**: Marked with green shapes above the bar.
- **Bearish Streaks**: Marked with red shapes above the bar.
#### 6. **Time-Based Marking**
- The script includes an option to highlight specific time intervals (e.g., 7:30 AM) with a colored vertical line or background shading.
- Configurable time inputs allow flexibility.
#### 7. **Micro Gap Detection**
- Highlights gaps between the opening price of the current bar and the closing price of the previous bar.
- Blue shapes indicate bullish gaps.
- Purple shapes indicate bearish gaps.
#### 8. **TR (Trading Range) Detection**
- Identifies bars with significant overlap based on a user-defined threshold.
- Displays "TR" labels when overlap conditions are met.
#### 9. **Bar Coloring**
- Optionally colors bars based on specific conditions:
- Green: Bullish breakout (high and low higher than the previous bar, closing above the midpoint).
- Red: Bearish breakout (high and low lower than the previous bar, closing below the midpoint).
#### 10. **50% Midpoint Line**
- Displays a horizontal line at the 50% midpoint of the bar's range, customizable for the current or last bar only.
#### 11. **Pattern Detection**
- Recognizes specific candlestick patterns (e.g., IOI, OII, IOO).
- Provides alerts for detected patterns or predefined thresholds.
#### 12. **Alerts**
- Configurable alerts for:
- Specific patterns (e.g., IOI, OII, IOO).
- Bar range exceeding a user-defined threshold.
- Bullish or bearish streaks.
#### 13. **Gap Detector**
- Identifies gaps between bars and marks them with shaded boxes.
- Bullish gaps are shaded green, while bearish gaps are shaded red.
#### 14. **Advanced Customization**
- Extensive user inputs allow traders to tailor the indicator to their trading style.
- Includes support for various levels of detail (e.g., debug mode, label visibility, etc.).
#### 15. **ZigZag and Wedge Patterns**
- Optional zigzag lines to connect swing highs and lows.
- Detects wedge patterns using customizable settings for pivot points and angle differences.
---
### **Use Case Scenarios**
1. **Trend Identification**: Use multi-timeframe EMAs to confirm overall market direction.
2. **Range Trading**: Trade within ranges using detected inside and outside bars as key levels.
3. **Breakout Trading**: Use patterns like IOI and OII to anticipate breakouts.
4. **Scalping**: Exploit bullish and bearish streaks or micro gaps for quick trades.
5. **Pattern-Based Alerts**: Set up alerts for specific market conditions or candlestick patterns.
### **Why This Indicator Is Useful**
- Combines multiple trading tools into a single, customizable script.
- Saves time by automating complex calculations and pattern detections.
- Improves decision-making with clear visual cues and configurable alerts.
Let me know if you'd like any additional explanations or adjustments!
Hikkake PatternLifted description from web:
Hikkake means to trap, trick, or ensnare. Primarily, this price pattern seeks to identify inside bar breakouts and profit from their failures.
An inside bar is a price bar that is entirely within the range of the preceding price bar. Inside bars are typical on price charts of most timeframes.
While you’ll often find inside bars in congested markets, they also offer a low-risk entry point for price action traders. The contracted range of an inside bar offers a natural tight stop-loss.
Hence, inside bar breakouts seem attractive. However, if you are patient and focus on identifying false breakouts, you might be able to find more reliable trading setups in the form of Hikkakes.
In a nutshell, the Hikkake pattern offers a systematic approach to trading false inside bar breakouts.
As a filter I incorporated VWAP into the code to only trigger Bullish / Bearish signals when price is Above/Below VWAP respectively. The ATR is used to create a Stop buffer (red cross) for the Entry signal ( green dot ). The R1 and R2 (orange squares) are two possible profit targets that are customizable to different Risk multiples based upon the difference between Entry and Stop.
🚀 Ultimate Trading Tool + Strat Method🚀 Ultimate Trading Tool + Strat Method - Complete Breakdown
Let me give you a comprehensive overview of this powerful indicator!
🎯 What This Indicator Does:
This is a professional-grade, all-in-one trading system that combines two proven methodologies:
1️⃣ Technical Analysis System (Original)
Advanced trend detection using multiple EMAs
Momentum analysis with MACD
RSI multi-timeframe analysis
Volume surge detection
Automated trendline drawing
2️⃣ Strat Method (Pattern Recognition)
Inside bars, outside bars, directional bars
Classic patterns: 2-2, 1-2-2
Advanced patterns: 3-1-2, 2-1-2, F2→3
Timeframe continuity filters
📊 How It Generates Signals:
Technical Analysis Signals (Green/Red Triangles):
Buy Signal Triggers When:
✅ Price above EMA 21 & 50 (uptrend)
✅ MACD histogram rising (momentum)
✅ RSI between 30-70 (not overbought/oversold)
✅ Volume surge above 20-period average
✅ Price breaks above resistance trendline
Scoring System:
Trend alignment: +1 point
Momentum: +1 point
RSI favorable: +1 point
Trendline breakout: +2 points
Minimum score required based on sensitivity setting
Strat Method Signals (Blue/Orange Labels):
Pattern Recognition:
2-2 Setup: Down bar → Up bar (or reverse)
1-2-2 Setup: Inside bar → Down bar → Up bar
3-1-2 Setup: Outside bar → Inside bar → Up bar
2-1-2 Setup: Down bar → Inside bar → Up bar
F2→3 Setup: Failed directional bar becomes outside bar
Confirmation Required:
Must break previous bar's high (buy) or low (sell)
Optional timeframe continuity (daily & weekly aligned)
💰 Risk Management Features:
Dynamic Stop Loss & Take Profit:
ATR-Based: Adapts to market volatility
Stop Loss: Entry - (ATR × 1.5) by default
Take Profit: Entry + (ATR × 3.0) by default
Risk:Reward: Customizable 1:2 to 1:5 ratios
Visual Risk Zones:
Colored boxes show risk/reward area
Dark, bold lines for easy identification
Clear entry, stop, and target levels
🎨 What You See On Screen:
Main Signals:
🟢 Green Triangle "BUY" - Technical analysis long signal
🔴 Red Triangle "SELL" - Technical analysis short signal
🎯 Blue Label "STRAT" - Strat method long signal
🎯 Orange Label "STRAT" - Strat method short signal
Trendlines:
Green lines - Support trendlines (bullish)
Red lines - Resistance trendlines (bearish)
Automatically drawn from pivot points
Extended forward to predict future levels
Stop/Target Levels:
Bold crosses at stop loss levels (red color)
Bold crosses at take profit levels (green color)
Line width = 3 for maximum visibility
Trade Zones:
Light green boxes - Long trade risk/reward zone
Light red boxes - Short trade risk/reward zone
Shows potential profit vs risk visually
📊 Information Dashboard (Top Right):
Shows real-time market conditions:
Main Signal: Current technical signal status
Strat Method: Active Strat pattern
Trend: Bullish/Bearish/Neutral
Momentum: Strong/Weak based on MACD
Volume: High/Normal compared to average
TF Continuity: Daily/Weekly alignment
RSI: Current RSI value with color coding
Support/Resistance: Current trendline levels
🔔 Alert System:
Entry Alerts:
Technical Signals:
🚀 BUY SIGNAL TRIGGERED!
Type: Technical Analysis
Entry: 45.23
Stop: 43.87
Target: 48.95
```
**Strat Signals:**
```
🎯 STRAT BUY TRIGGER!
Pattern: 3-1-2
Entry: 45.23
Trigger Level: 44.56
Exit Alerts:
Target hit notifications
Stop loss hit warnings
Helps maintain discipline
⚙️ Customization Options:
Signal Settings:
Sensitivity: High/Medium/Low (controls how many signals)
Volume Filter: Require volume surge or not
Momentum Filter: Require momentum confirmation
Strat Settings:
TF Continuity: Require daily/weekly alignment
Pattern Selection: Enable/disable specific patterns
Confirmation Mode: Show only confirmed triggers
Risk Settings:
ATR Multiplier: Adjust stop/target distance
Risk:Reward: Set preferred ratio
Visual Elements: Show/hide any component
Visual Settings:
Colors: Customize all signal colors
Display Options: Toggle signals, levels, zones
Trendline Length: Adjust pivot detection period
🎯 Best Use Cases:
Day Trading:
Use low sensitivity setting
Enable all Strat patterns
Watch for high volume signals
Quick in/out trades
Swing Trading:
Use medium sensitivity
Require timeframe continuity
Focus on trendline breakouts
Hold for target levels
Position Trading:
Use high sensitivity (fewer signals)
Require strong momentum
Focus on weekly/daily alignment
Larger ATR multipliers
💡 Trading Strategy Tips:
High-Probability Setups:
Double Confirmation: Technical + Strat signal together
Trend Alignment: All timeframes agree
Volume Surge: Institutional participation
Trendline Break: Clear level breakout
Risk Management:
Always use stops - System provides them
Position sizing - Risk 1-2% per trade
Don't chase - Wait for signal confirmation
Take profits - System provides targets
What Makes Signals Strong:
✅ Both technical AND Strat signals fire together
✅ Timeframe continuity (daily & weekly aligned)
✅ Volume surge confirms institutional interest
✅ Multiple indicators align (trend + momentum + RSI)
✅ Clean trendline breakout with no resistance above (or support below)
⚠️ Common Mistakes to Avoid:
Don't ignore stops - System calculates them for a reason
Don't overtrade - Wait for quality setups
Don't disable volume filter - Unless you know what you're doing
Don't use max sensitivity - You'll get too many signals
Don't ignore timeframe continuity - It filters bad trades
🚀 Why This Indicator is Powerful:
Combines Multiple Edge Sources:
Technical analysis (trend, momentum, volume)
Pattern recognition (Strat method)
Risk management (dynamic stops/targets)
Market structure (trendlines, support/resistance)
Professional Features:
No repainting - signals are final when bar closes
Clear risk/reward before entry
Multiple confirmation layers
Adaptable to any market or timeframe
Beginner Friendly:
Clear visual signals
Automatic calculations
Built-in risk management
Comprehensive dashboard
This indicator essentially gives you everything a professional trader uses - trend analysis, momentum, patterns, volume, risk management - all in one clean package!
Any specific aspect you'd like me to explain in more detail? 🎯RetryClaude can make mistakes. Please double-check responses. Sonnet 4.5
Impactful pattern and candles pattern AlertThe Alertion indicator!
impactful pattern:
pattern that happen near the zone or in the zone at lower timeframe and give us entry and stop limit price.
It is helpful for price action traders and those who want to decrease their risk.
There are 3 IP patterns:
Quasimodo
Head and shoulder
whipsaw engulfing
These patterns may occur near the zone or may not occur but by them, you can decrease your trading risk for example you can
trade with half lot before IP pattern and enter with other half after pattern.
how to use?
for example:
you find zone at 1h timeframe for short position
when price enter to your zone
you run this indicator and choose your lower timeframe, for example 15m and click on short position.
Then make the alert by right-click on your chart and choose the add alert and at condition box choose the impactful pattern and then click on create
now wait for message :)
Candles pattern:
like reversal bar, key reversal bar, exhaustion bar, pin bar, two-bar reversal, tree-bar reversal, inside bar, outside bar
these occur when the trend turn, so it is usable when the price enter to your zone or near your zone.
This pattern can decrease your risk.
Inside bar and outside bar:
if this pattern engulf up, it is bullish pattern and if engulf down, it is bearish pattern.
what does this indicator do?
this indicator is for making alert
it helps you to decrease your risk and failure.
You optimize it to alert you when IP pattern happen or candle pattern happen or inside bar or outside bar engulfing or all of them.
For IP pattern, it will message you entry and stop limit price.
It works at 2 different timeframes, so you can make alert for example in 1h TF for candles pattern and 15m TF for IP pattern.
Indicator will alert you for candles pattern at your chart timeframe and for IP pattern at timeframe you've chosen when you run the indicator, and it is changeable
in setting.
setting options
TIMEFRAME
IP: select the timeframe for IP patterns it means when IP pattern happen at that timeframe the indicator will alert you
example = your TF is 1h, you found the supply zone and want to trade, note that IP pattern happen in lower TF, so you select 15m TF or TF lower than 1h.
Short position: select it if you want to make short position.
BUFFERING
indicator send you entry and stop limit price
you can change it by amount of percent
it is your strategy to change your entry and stop loss or not
example= in head and shoulder pattern at short position, the stop limit is high price of head in pattern
so the indicator will message you the exact price but if you want to put
your stop limit 5 percent upper than exact price you can enter 5 in front of stop loss
or you want to enter 5 percent lower than exact high price of shoulder, you can optimize it.
ALERTION
you choose what alert you want
IP alert or candle alert or inside and outside bar alert
type your text for alert
you can write additional text for your message
ADVANCE
IP alert frequency option:
1. Once per bar : indicator will alert you for IP pattern once at your chat timeframe bar, and you should wait til next bar for next alert.
2. Once per bar close : alert you when your chart timeframe bar closed and next alert will happen when next bar is closed.
3. All: alert you all the times IP pattern happen
pivot left and right bars: lower will find smaller pattern
at the END:
this indicator is not strategy
it is part of your strategy that help you to increase your winning rate.
It is helpful for scalping and candle patterns finding.
After you make an alert, you can delete the indicator or change your timeframe or make another alert, your previous alert won’t change.
Thank you all.
1-3-1 Strat Combo with 50% Level (12h)Logic Explanation
1-3-1 Combo Detection:
The script detects the 1-3-1 pattern using the previous 3 candles:
Candle 4: Inside Bar (Type 1).
Candle 3: Outside Bar (Type 3).
Candle 2: Inside Bar (Type 1).
4th Candle Behavior:
If the 4th candle (current bar):
Stays an inside bar (Type 1) → isFourthInsideBar is true.
Becomes a directional bar (Type 2) → isFourthDirectional is true.
If either of these conditions is true, the script stops calculating and waits for the next valid 1-3-1 setup.
50% Level Calculation:
If the conditions are not met (e.g., the 4th candle doesn’t stop the pattern), the script:
Plots a dotted line at the 50% level of the 3rd candle.
Adds a label showing the 50% level.
Stop Calculations:
No line, box, or label is drawn if the 4th candle is a Type 1 (inside bar) or Type 2 (directional bar).
Visual Outputs:
Dotted Box: Marks the 1-3-1 combo setup.
50% Line: Drawn only if the 4th candle does not invalidate the pattern.
Label: Displays the 50% level of the 3rd candle.
How to Use:
Apply this script on the 12-hour chart.
The script will:
Detect valid 1-3-1 patterns.
Stop drawing any calculations if the 4th candle is an inside bar (1) or a directional bar (2).
Wait for the next valid 1-3-1 combo.
ka66: Candle Range MarkThis is a simple trailing stop loss tool using bar ranges, to be used with some discretion and understanding of basic price action.
Given a configurable percentage value, e.g. 25%:
A bullish bar (close > open) will be marked at the lower 25%
A bearish bar (close < open) will be marked at the upper 25%
The idea is to move your stop loss after each completed bar in the direction of the trade, at the configured percentage value.
If you have an inside bar, or something very close to it, or a doji-type bar, don't trail that, because there is no clarity of what the bar means, we can only wait.
The chart shows an example use, with trailing at 10% of the bar, from the initial stop loss after entry, trailing till we get stopped out. Some things to note:
Because this example focuses on a short trade, we ignore the bullish candles, and keep our trailing stop at the last bearish candle.
We ignore doji-esque candles and inside bars, where the body is in the range of the prior candle. Some definitions of inside bars include the wicks as well. I don't have a strong opinion, and this example is just for illustration. Furthermore, the inside bar will likely be the opposite of the swing bars (e.g. bullish bar in a range of bearish bars), so our stop remains unchanged.
One could use this semi-systematic approach in scalping on any timeframe, for example to maximise gains, adjusting the bar percentage as needed.
The Strat Lite [rdjxyz]◆ OVERVIEW
The Strat Lite is a stripped down version of the Strat Assistant indicator by rickyzcarroll—focusing on visual simplicity and script performance. If you're new to The Strat, you may prefer the Strat Assistant as a learning aid.
◇ FEATURES REMOVED FROM THE ORIGINAL SCRIPT
Candle Numbering & Up/Down Arrows
Previous Week High & Low Lines
Previous Day High & Low Lines
Action Wick Percentage
Actionable Signals Plot
Strat Combo Plots
Extensive Alerts
◇ FEATURES KEPT FROM THE ORIGINAL SCRIPT
Full Timeframe Continuity
Candle Coloring
◇ FEATURES ADDED TO THE ORIGINAL SCRIPT
Failed 2 Down Classification
Failed 2 Up Classification
◆ DETAILS
The Strat is a trading methodology developed by Rob Smith that offers an objective approach to trading by focusing on the 3 universal scenarios regarding candle behavior:
SCENARIO ONE
The 1 Bar - Inside Bar: A candle that doesn't take out the highs or the lows of the previous candle; aka consolidation.
These are shown as gray candles by default.
SCENARIO TWO
The 2 Bar - Directional Bar: A candle that takes out one side of the previous candle; aka trending (or at least attempting to trend).
SCENARIO THREE
The 3 Bar - Outside Bar: A candle that takes out both sides of the previous candle; aka broadening formation.
In addition to Rob's 3 universal scenarios, this indicator identifies two variations of 2 bars:
Failed 2 up: A candle that takes out the high of the previous candle but closes bearish.
Failed 2 down: A candle that takes out the low of the previous candle but closes bullish.
◆ SETTINGS
◇ INPUTS
FTC (FULL TIMEFRAME CONTINUITY)
Show/hide FTC plots
Offset FTC plots from current bar
◇ STYLE
STRAT COLORS
Color 0 (Failed 2 Up) - Default is fuchsia
Color 1 (Failed 2 Down) - Default is teal
Color 2 (Inside 1) - Default is gray
Color 3 (Outside 3) - Default is dark purple
Color 4 (2 up) - Default is aqua
Color 5 (2 down) - Default is white
◆ USAGE
It's recommended to use The Strat Lite with a top down analysis so you can find lower timeframe positions with higher timeframe context.
◇ TOP DOWN ANALYSIS
MONTHLY LEVELS
Starting on a monthly chart, the previous month's high and low are manually plotted.
WEEKLY LEVELS
Dropping down to a weekly chart, the previous week's high and low are manually plotted.
DAILY LEVELS
Dropping down to a daily chart, the previous day's high and low are manually plotted.
12H LEVELS
Dropping down to a 12h chart, the previous 12h's high and low are manually plotted.
ANALYSIS
The monthly low was broken, creating a lower low (aka a broadening formation), signalling potential exhaustion risk, which can be a catalyst for reversals. The daily candle that tested the monthly low closed as a Failed 2 Down—potentially an early sign of a reversal. With these 2 confluences, it's reasonable to expect the next daily candle to be a 2 Up. Now it's time to look for a lower timeframe entry.
◇ LOWER TIMEFRAME POSITION
HOURLY PRICE ACTION
Dropping down to an hourly chart, we're anticipating a 2 Up on the daily timeframe, so we're looking for a bullish pattern to enter a position long. I personally like the 6:00 AM UTC-5 hourly candle, as it's the midpoint of the day (for futures).
In this specific example, we see the opening gap was filled and there's a potential 2-1-2 bullish reversal set up.
At this point, price can either do one of 5 things:
Form another 1 (inside) candle
Form a 2 up (directional) candle
Form a 2 down (directional) candle
Form a 2 up, fail, and potentially flip to form a bearish 3 (outside) candle
Form a 2 down, fail, and potentially flip to form a bullish 3 (outside) candle
Knowing the finite potential outcomes helps us set up our positions, manage them accordingly, and flip bias if needed.
POSITION SETUP
Here we can set up a position long AND short. To go long, we set a buy stop at the 1h high and stop loss just below the 50% level of the inside candle; to go short, we set a sell stop at 1h low and stop loss just above the 50% level of the inside candle.
If the short gets triggered first, we can wait for price to move in our favor before cancelling the buy order. If the short becomes a failed 2 down, potentially reversing to become a bullish 3, we can either wait for the stop loss to trigger and for the long position to trigger OR we can move the buy stop to our short stop loss and move the long stop loss to the low of the 1h candle.
POSITION REFINEMENT
For an even tighter risk-to-reward, we can drop to a lower timeframe and look for setups that would be an early trigger of the 1h entry. Just know, the lower you go the more noise there is—increasing risk of getting stopped out before the 1h trigger.
Above are 30m refined entries.
In this example, the long buy stop was triggered. It closed bullish, so the sell stop order can be cancelled.
◇ TARGETS & POSITION MANAGEMENT
TARGETS
These depend on whether you intend to scalp, day trade, or swing trade, but targets are typically the highs of previous candles (when bullish) and lows of previous candles (when bearish). It's advised to be cautious of swing pivots as there's a risk of exhaustion and reversal at these levels.
In this example, the nearest target was the previous 12h high and the next target was the previous day high; if you're a swing trader, you could target previous week's high and previous month's high.
POSITION MANAGEMENT
This largely depends on your risk tolerance, but it's common to either:
Move stop loss slightly into profit
Trail stop loss behind higher highs (bullish) or lower lows (bearish)
Scale out of positions at potential pivot points, leaving a runner
Scale into positions on pullbacks on the way to target
◆ WRAP UP
As demonstrated, The Strat Lite offers a stripped down version of the Strat Assistant—making it visually simple for more experienced Strat traders. By following a top-down approach with The Strat methodology, you can find high probability setups and manage risk with relative ease.
◆ DISCLAIMER
This indicator is a tool for visual analysis and is intended to assist traders who follow The Strat methodology. As with any trading methodology, there's no guarantee of profits; trading involves a high degree of risk and you could lose all of your invested capital. The example shown is of past performance and is not indicative of future results and does not constitute and should not be construed as investment advice. All trading decisions and investments made by you are at your own discretion and risk. Under no circumstances shall the author be liable for any direct, indirect, or incidental damages. You should only risk capital you can afford to lose.
MSFA_LibraryLibrary "MSFA_library"
TODO: add library description here
getDecimals()
Calculates how many decimals are on the quote price of the current market
Returns: The current decimal places on the market quote price
getPipSize(multiplier)
Calculates the pip size of the current market
Parameters:
multiplier (int) : The mintick point multiplier (1 by default, 10 for FX/Crypto/CFD but can be used to override when certain markets require)
Returns: The pip size for the current market
truncate(number, decimalPlaces)
Truncates (cuts) excess decimal places
Parameters:
number (float) : The number to truncate
decimalPlaces (simple float) : (default=2) The number of decimal places to truncate to
Returns: The given number truncated to the given decimalPlaces
toWhole(number)
Converts pips into whole numbers
Parameters:
number (float) : The pip number to convert into a whole number
Returns: The converted number
toPips(number)
Converts whole numbers back into pips
Parameters:
number (float) : The whole number to convert into pips
Returns: The converted number
getPctChange(value1, value2, lookback)
Gets the percentage change between 2 float values over a given lookback period
Parameters:
value1 (float) : The first value to reference
value2 (float) : The second value to reference
lookback (int) : The lookback period to analyze
Returns: The percent change over the two values and lookback period
random(minRange, maxRange)
Wichmann–Hill Pseudo-Random Number Generator
Parameters:
minRange (float) : The smallest possible number (default: 0)
maxRange (float) : The largest possible number (default: 1)
Returns: A random number between minRange and maxRange
bullFib(priceLow, priceHigh, fibRatio)
Calculates a bullish fibonacci value
Parameters:
priceLow (float) : The lowest price point
priceHigh (float) : The highest price point
fibRatio (float) : The fibonacci % ratio to calculate
Returns: The fibonacci value of the given ratio between the two price points
bearFib(priceLow, priceHigh, fibRatio)
Calculates a bearish fibonacci value
Parameters:
priceLow (float) : The lowest price point
priceHigh (float) : The highest price point
fibRatio (float) : The fibonacci % ratio to calculate
Returns: The fibonacci value of the given ratio between the two price points
getMA(length, maType)
Gets a Moving Average based on type (! MUST BE CALLED ON EVERY TICK TO BE ACCURATE, don't place in scopes)
Parameters:
length (simple int) : The MA period
maType (string) : The type of MA
Returns: A moving average with the given parameters
barsAboveMA(lookback, ma)
Counts how many candles are above the MA
Parameters:
lookback (int) : The lookback period to look back over
ma (float) : The moving average to check
Returns: The bar count of how many recent bars are above the MA
barsBelowMA(lookback, ma)
Counts how many candles are below the MA
Parameters:
lookback (int) : The lookback period to look back over
ma (float) : The moving average to reference
Returns: The bar count of how many recent bars are below the EMA
barsCrossedMA(lookback, ma)
Counts how many times the EMA was crossed recently (based on closing prices)
Parameters:
lookback (int) : The lookback period to look back over
ma (float) : The moving average to reference
Returns: The bar count of how many times price recently crossed the EMA (based on closing prices)
getPullbackBarCount(lookback, direction)
Counts how many green & red bars have printed recently (ie. pullback count)
Parameters:
lookback (int) : The lookback period to look back over
direction (int) : The color of the bar to count (1 = Green, -1 = Red)
Returns: The bar count of how many candles have retraced over the given lookback & direction
getBodySize()
Gets the current candle's body size (in POINTS, divide by 10 to get pips)
Returns: The current candle's body size in POINTS
getTopWickSize()
Gets the current candle's top wick size (in POINTS, divide by 10 to get pips)
Returns: The current candle's top wick size in POINTS
getBottomWickSize()
Gets the current candle's bottom wick size (in POINTS, divide by 10 to get pips)
Returns: The current candle's bottom wick size in POINTS
getBodyPercent()
Gets the current candle's body size as a percentage of its entire size including its wicks
Returns: The current candle's body size percentage
isHammer(fib, colorMatch)
Checks if the current bar is a hammer candle based on the given parameters
Parameters:
fib (float) : (default=0.382) The fib to base candle body on
colorMatch (bool) : (default=false) Does the candle need to be green? (true/false)
Returns: A boolean - true if the current bar matches the requirements of a hammer candle
isStar(fib, colorMatch)
Checks if the current bar is a shooting star candle based on the given parameters
Parameters:
fib (float) : (default=0.382) The fib to base candle body on
colorMatch (bool) : (default=false) Does the candle need to be red? (true/false)
Returns: A boolean - true if the current bar matches the requirements of a shooting star candle
isDoji(wickSize, bodySize)
Checks if the current bar is a doji candle based on the given parameters
Parameters:
wickSize (float) : (default=2) The maximum top wick size compared to the bottom (and vice versa)
bodySize (float) : (default=0.05) The maximum body size as a percentage compared to the entire candle size
Returns: A boolean - true if the current bar matches the requirements of a doji candle
isBullishEC(allowance, rejectionWickSize, engulfWick)
Checks if the current bar is a bullish engulfing candle
Parameters:
allowance (float) : (default=0) How many POINTS to allow the open to be off by (useful for markets with micro gaps)
rejectionWickSize (float) : (default=disabled) The maximum rejection wick size compared to the body as a percentage
engulfWick (bool) : (default=false) Does the engulfing candle require the wick to be engulfed as well?
Returns: A boolean - true if the current bar matches the requirements of a bullish engulfing candle
isBearishEC(allowance, rejectionWickSize, engulfWick)
Checks if the current bar is a bearish engulfing candle
Parameters:
allowance (float) : (default=0) How many POINTS to allow the open to be off by (useful for markets with micro gaps)
rejectionWickSize (float) : (default=disabled) The maximum rejection wick size compared to the body as a percentage
engulfWick (bool) : (default=false) Does the engulfing candle require the wick to be engulfed as well?
Returns: A boolean - true if the current bar matches the requirements of a bearish engulfing candle
isInsideBar()
Detects inside bars
Returns: Returns true if the current bar is an inside bar
isOutsideBar()
Detects outside bars
Returns: Returns true if the current bar is an outside bar
barInSession(sess, useFilter)
Determines if the current price bar falls inside the specified session
Parameters:
sess (simple string) : The session to check
useFilter (bool) : (default=true) Whether or not to actually use this filter
Returns: A boolean - true if the current bar falls within the given time session
barOutSession(sess, useFilter)
Determines if the current price bar falls outside the specified session
Parameters:
sess (simple string) : The session to check
useFilter (bool) : (default=true) Whether or not to actually use this filter
Returns: A boolean - true if the current bar falls outside the given time session
dateFilter(startTime, endTime)
Determines if this bar's time falls within date filter range
Parameters:
startTime (int) : The UNIX date timestamp to begin searching from
endTime (int) : the UNIX date timestamp to stop searching from
Returns: A boolean - true if the current bar falls within the given dates
dayFilter(monday, tuesday, wednesday, thursday, friday, saturday, sunday)
Checks if the current bar's day is in the list of given days to analyze
Parameters:
monday (bool) : Should the script analyze this day? (true/false)
tuesday (bool) : Should the script analyze this day? (true/false)
wednesday (bool) : Should the script analyze this day? (true/false)
thursday (bool) : Should the script analyze this day? (true/false)
friday (bool) : Should the script analyze this day? (true/false)
saturday (bool) : Should the script analyze this day? (true/false)
sunday (bool) : Should the script analyze this day? (true/false)
Returns: A boolean - true if the current bar's day is one of the given days
atrFilter(atrValue, maxSize)
Parameters:
atrValue (float)
maxSize (float)
tradeCount()
Calculate total trade count
Returns: Total closed trade count
isLong()
Check if we're currently in a long trade
Returns: True if our position size is positive
isShort()
Check if we're currently in a short trade
Returns: True if our position size is negative
isFlat()
Check if we're currentlyflat
Returns: True if our position size is zero
wonTrade()
Check if this bar falls after a winning trade
Returns: True if we just won a trade
lostTrade()
Check if this bar falls after a losing trade
Returns: True if we just lost a trade
maxDrawdownRealized()
Gets the max drawdown based on closed trades (ie. realized P&L). The strategy tester displays max drawdown as open P&L (unrealized).
Returns: The max drawdown based on closed trades (ie. realized P&L). The strategy tester displays max drawdown as open P&L (unrealized).
totalPipReturn()
Gets the total amount of pips won/lost (as a whole number)
Returns: Total amount of pips won/lost (as a whole number)
longWinCount()
Count how many winning long trades we've had
Returns: Long win count
shortWinCount()
Count how many winning short trades we've had
Returns: Short win count
longLossCount()
Count how many losing long trades we've had
Returns: Long loss count
shortLossCount()
Count how many losing short trades we've had
Returns: Short loss count
breakEvenCount(allowanceTicks)
Count how many break-even trades we've had
Parameters:
allowanceTicks (float) : Optional - how many ticks to allow between entry & exit price (default 0)
Returns: Break-even count
longCount()
Count how many long trades we've taken
Returns: Long trade count
shortCount()
Count how many short trades we've taken
Returns: Short trade count
longWinPercent()
Calculate win rate of long trades
Returns: Long win rate (0-100)
shortWinPercent()
Calculate win rate of short trades
Returns: Short win rate (0-100)
breakEvenPercent(allowanceTicks)
Calculate break even rate of all trades
Parameters:
allowanceTicks (float) : Optional - how many ticks to allow between entry & exit price (default 0)
Returns: Break-even win rate (0-100)
averageRR()
Calculate average risk:reward
Returns: Average winning trade divided by average losing trade
unitsToLots(units)
(Forex) Convert the given unit count to lots (multiples of 100,000)
Parameters:
units (float) : The units to convert into lots
Returns: Units converted to nearest lot size (as float)
skipTradeMonteCarlo(chance, debug)
Checks to see if trade should be skipped to emulate rudimentary Monte Carlo simulation
Parameters:
chance (float) : The chance to skip a trade (0-1 or 0-100, function will normalize to 0-1)
debug (bool) : Whether or not to display a label informing of the trade skip
Returns: True if the trade is skipped, false if it's not skipped (idea being to include this function in entry condition validation checks)
fillCell(tableID, column, row, title, value, bgcolor, txtcolor, tooltip)
This updates the given table's cell with the given values
Parameters:
tableID (table) : The table ID to update
column (int) : The column to update
row (int) : The row to update
title (string) : The title of this cell
value (string) : The value of this cell
bgcolor (color) : The background color of this cell
txtcolor (color) : The text color of this cell
tooltip (string)
Returns: Nothing.
Ultimate JLines & MTF EMA (Configurable, Labels)## Ultimate JLines & MTF EMA (Configurable, Labels) — Script Overview
This Pine Script is a comprehensive, multi-timeframe indicator based on J Trader concepts. It overlays various Exponential Moving Averages (EMAs), VWAP, inside bar highlights, and dynamic labels onto price charts. The script is highly configurable, allowing users to tailor which elements are displayed and how they appear.
### Key Features
#### 1. **Multi-Timeframe JLines**
- **JLines** are pairs of EMAs (default lengths: 72 and 89) calculated on several timeframes:
- 1 minute (1m)
- 3 minutes (3m)
- 5 minutes (5m)
- 1 hour (1h)
- Custom timeframe (user-selectable)
- Each pair can be visualized as individual lines and as a "cloud" (shaded area between the two EMAs).
- Colors and opacity for each timeframe are user-configurable.
#### 2. **200 EMA on Multiple Timeframes**
- Plots the 200-period EMA on selectable timeframes: 1m, 3m, 5m, 15m, and 1h.
- Each can be toggled independently and colored as desired.
#### 3. **9 EMA and VWAP**
- Plots a 9-period EMA, either on the chart’s current timeframe or a user-specified one.
- Plots VWAP (Volume-Weighted Average Price) for additional trend context.
#### 4. **5/15 EMA Cross Cloud (5min)**
- Calculates and optionally displays a shaded "cloud" between the 5-period and 15-period EMAs on the 5-minute chart.
- Highlights bullish (5 EMA above 15 EMA) and bearish (5 EMA below 15 EMA) conditions with different colors.
- Optionally displays the 5 and 15 EMA lines themselves.
#### 5. **Inside Bar Highlighting**
- Highlights bars where the current high is less than or equal to the previous high and the low is greater than or equal to the previous low (inside bars).
- Color is user-configurable.
#### 6. **9 EMA / VWAP Cross Arrows**
- Plots up/down arrows when the 9 EMA crosses above or below the VWAP.
- Arrow colors and visibility are configurable.
#### 7. **Dynamic Labels**
- On the most recent bar, displays labels for each enabled line (EMAs, VWAP), offset to the right for clarity.
- Labels include the timeframe, type, and current value.
### Customization Options
- **Visibility:** Each plot (line, cloud, arrow, label) can be individually toggled on/off.
- **Colors:** All lines, clouds, and arrows can be colored to user preference, including opacity for clouds.
- **Timeframes:** JLines and EMAs can be calculated on different timeframes, including a custom one.
- **Label Text:** Labels dynamically reflect current indicator values and are color-coded to match their lines.
### Technical Implementation Highlights
- **Helper Functions:** Functions abstract away the logic for multi-timeframe EMA calculation.
- **Security Calls:** Uses `request.security` to fetch data from other timeframes, ensuring accurate multi-timeframe plotting.
- **Efficient Label Management:** Deletes old labels and creates new ones only on the last bar to avoid clutter and maintain performance.
- **Conditional Plotting:** All visual elements are conditionally plotted based on user input, making the indicator highly flexible.
### Use Cases
- **Trend Identification:** Multiple EMAs and VWAP help traders quickly identify trend direction and strength across timeframes.
- **Support/Resistance:** 200 EMA and JLines often act as dynamic support/resistance levels.
- **Entry/Exit Signals:** Crosses between 9 EMA and VWAP, as well as 5/15 EMA clouds, can signal potential trade entries or exits.
- **Pattern Recognition:** Inside bar highlights aid in spotting consolidation and breakout patterns.
### Summary Table of Configurable Elements
| Feature | Timeframes | Cloud Option | Label Option | Color Customizable | Description |
|----------------------------|-------------------|--------------|--------------|--------------------|-----------------------------------------------|
| JLines (72/89 EMA) | 1m, 3m, 5m, 1h, Custom | Yes | Yes | Yes | Key trend-following EMAs with cloud fill |
| 200 EMA | 1m, 3m, 5m, 15m, 1h | No | Yes | Yes | Long-term trend indicator |
| 9 EMA | Any | No | Yes | Yes | Short-term trend indicator |
| VWAP | Chart TF | No | Yes | Yes | Volume-weighted average price |
| 5/15 EMA Cloud (5m) | 5m | Yes | No | Yes | Bullish/bearish cloud between 5/15 EMAs |
| Inside Bar Highlight | Chart TF | No | N/A | Yes | Highlights price consolidation |
| 9 EMA / VWAP Cross Arrows | Chart TF | No | N/A | Yes | Marks EMA/VWAP crossovers with arrows |
This script is ideal for traders seeking a robust, multi-timeframe overlay that combines trend, momentum, and pattern signals in a single, highly customizable indicator. I do not advocate to subscribe to JTrades or the system they tout. This is based on my own observations and not a copy of any JTrades scripts. It is open source to allow full transparency.
IU Inside/Harami candlestick patternDESCRIPTION
The IU Inside/Harami Candlestick Pattern indicator is designed to detect bullish and bearish inside bar formations, also known as Harami patterns. This tool gives users flexibility by allowing pattern detection based on candle wicks, bodies, or a combination of both. It highlights detected patterns using colored boxes and optional text labels on the chart, helping traders quickly identify areas of consolidation and potential reversals.
USER INPUTS :
Pattern Recognition Based on =
Choose between "Wicks", "Body", or "Both" to determine how the inside candle pattern is identified.
Show Box =
Toggle the appearance of colored boxes that highlight the pattern zone.
Show Text =
Toggle on-screen labels for "Bullish Inside" or "Bearish Inside" when patterns are detected.
INDICATOR LOGIC :
Bullish Inside Bar (Harami) is detected when:
* The current candle's high is lower and low is higher than the previous candle (wick-based),
* or the current candle’s open and close are inside the previous candle’s body (body-based),
* and the current candle is bullish while the previous is bearish.
Bearish Inside Bar (Harami) is detected when:
* The current candle's high is lower and low is higher than the previous candle (wick-based),
* or the current candle’s open and close are inside the previous candle’s body (body-based),
* and the current candle is bearish while the previous is bullish.
The user can choose wick-based, body-based, or both logics for pattern confirmation.
Boxes are drawn between the highs and lows of the pattern, and alert messages are generated upon confirmation.
Optional labels show the pattern name for quick visual identification.
WHY IT IS UNIQUE :
Offers three different logic modes: wick-based, body-based, or combined.
Highlights patterns visually with customizable boxes and labels.
Includes built-in alerts for immediate notifications.
Uses clean and transparent plotting without repainting.
HOW USER CAN BENEFIT FROM IT :
Receive real-time alerts when Inside/Harami patterns are formed.
Use the boxes and text labels to spot price compression zones and breakout potential.
Combine it with other tools like trendlines or support/resistance for enhanced accuracy.
Suitable for scalpers, swing traders, and price action traders looking to trade inside bar breakouts or reversals.
DISCLAIMER :
This indicator is not financial advice, it's for educational purposes only highlighting the power of coding( pine script) in TradingView, I am not a SEBI-registered advisor. Trading and investing involve risk, and you should consult with a qualified financial advisor before making any trading decisions. I do not guarantee profits or take responsibility for any losses you may incur.
AriVestHub_Inside Bars/Candles
Introduction:
This script identifies and marks inside bars on your TradingView charts. An inside bar pattern is a two-bar candlestick pattern where the second bar is entirely within the range of the first bar. This pattern often signals consolidation and can indicate a potential breakout or trend continuation.
Trading Signals:
Inside bars can indicate potential trading signals. Traders often watch for breakouts above or below the inside bar to identify potential entry points.
Customization:
You can customize the colors, styles, and labels to suit your preferences.
Conclusion
This script is a useful tool for traders looking to identify inside bar patterns on their TradingView charts. By highlighting these patterns, traders can make more informed trading decisions based on potential market consolidations and breakouts.
JordanSwindenLibraryLibrary "JordanSwindenLibrary"
TODO: add library description here
getDecimals()
Calculates how many decimals are on the quote price of the current market
Returns: The current decimal places on the market quote price
getPipSize(multiplier)
Calculates the pip size of the current market
Parameters:
multiplier (int) : The mintick point multiplier (1 by default, 10 for FX/Crypto/CFD but can be used to override when certain markets require)
Returns: The pip size for the current market
truncate(number, decimalPlaces)
Truncates (cuts) excess decimal places
Parameters:
number (float) : The number to truncate
decimalPlaces (simple float) : (default=2) The number of decimal places to truncate to
Returns: The given number truncated to the given decimalPlaces
toWhole(number)
Converts pips into whole numbers
Parameters:
number (float) : The pip number to convert into a whole number
Returns: The converted number
toPips(number)
Converts whole numbers back into pips
Parameters:
number (float) : The whole number to convert into pips
Returns: The converted number
getPctChange(value1, value2, lookback)
Gets the percentage change between 2 float values over a given lookback period
Parameters:
value1 (float) : The first value to reference
value2 (float) : The second value to reference
lookback (int) : The lookback period to analyze
Returns: The percent change over the two values and lookback period
random(minRange, maxRange)
Wichmann–Hill Pseudo-Random Number Generator
Parameters:
minRange (float) : The smallest possible number (default: 0)
maxRange (float) : The largest possible number (default: 1)
Returns: A random number between minRange and maxRange
bullFib(priceLow, priceHigh, fibRatio)
Calculates a bullish fibonacci value
Parameters:
priceLow (float) : The lowest price point
priceHigh (float) : The highest price point
fibRatio (float) : The fibonacci % ratio to calculate
Returns: The fibonacci value of the given ratio between the two price points
bearFib(priceLow, priceHigh, fibRatio)
Calculates a bearish fibonacci value
Parameters:
priceLow (float) : The lowest price point
priceHigh (float) : The highest price point
fibRatio (float) : The fibonacci % ratio to calculate
Returns: The fibonacci value of the given ratio between the two price points
getMA(length, maType)
Gets a Moving Average based on type (! MUST BE CALLED ON EVERY TICK TO BE ACCURATE, don't place in scopes)
Parameters:
length (simple int) : The MA period
maType (string) : The type of MA
Returns: A moving average with the given parameters
barsAboveMA(lookback, ma)
Counts how many candles are above the MA
Parameters:
lookback (int) : The lookback period to look back over
ma (float) : The moving average to check
Returns: The bar count of how many recent bars are above the MA
barsBelowMA(lookback, ma)
Counts how many candles are below the MA
Parameters:
lookback (int) : The lookback period to look back over
ma (float) : The moving average to reference
Returns: The bar count of how many recent bars are below the EMA
barsCrossedMA(lookback, ma)
Counts how many times the EMA was crossed recently (based on closing prices)
Parameters:
lookback (int) : The lookback period to look back over
ma (float) : The moving average to reference
Returns: The bar count of how many times price recently crossed the EMA (based on closing prices)
getPullbackBarCount(lookback, direction)
Counts how many green & red bars have printed recently (ie. pullback count)
Parameters:
lookback (int) : The lookback period to look back over
direction (int) : The color of the bar to count (1 = Green, -1 = Red)
Returns: The bar count of how many candles have retraced over the given lookback & direction
getBodySize()
Gets the current candle's body size (in POINTS, divide by 10 to get pips)
Returns: The current candle's body size in POINTS
getTopWickSize()
Gets the current candle's top wick size (in POINTS, divide by 10 to get pips)
Returns: The current candle's top wick size in POINTS
getBottomWickSize()
Gets the current candle's bottom wick size (in POINTS, divide by 10 to get pips)
Returns: The current candle's bottom wick size in POINTS
getBodyPercent()
Gets the current candle's body size as a percentage of its entire size including its wicks
Returns: The current candle's body size percentage
isHammer(fib, colorMatch)
Checks if the current bar is a hammer candle based on the given parameters
Parameters:
fib (float) : (default=0.382) The fib to base candle body on
colorMatch (bool) : (default=false) Does the candle need to be green? (true/false)
Returns: A boolean - true if the current bar matches the requirements of a hammer candle
isStar(fib, colorMatch)
Checks if the current bar is a shooting star candle based on the given parameters
Parameters:
fib (float) : (default=0.382) The fib to base candle body on
colorMatch (bool) : (default=false) Does the candle need to be red? (true/false)
Returns: A boolean - true if the current bar matches the requirements of a shooting star candle
isDoji(wickSize, bodySize)
Checks if the current bar is a doji candle based on the given parameters
Parameters:
wickSize (float) : (default=2) The maximum top wick size compared to the bottom (and vice versa)
bodySize (float) : (default=0.05) The maximum body size as a percentage compared to the entire candle size
Returns: A boolean - true if the current bar matches the requirements of a doji candle
isBullishEC(allowance, rejectionWickSize, engulfWick)
Checks if the current bar is a bullish engulfing candle
Parameters:
allowance (float) : (default=0) How many POINTS to allow the open to be off by (useful for markets with micro gaps)
rejectionWickSize (float) : (default=disabled) The maximum rejection wick size compared to the body as a percentage
engulfWick (bool) : (default=false) Does the engulfing candle require the wick to be engulfed as well?
Returns: A boolean - true if the current bar matches the requirements of a bullish engulfing candle
isBearishEC(allowance, rejectionWickSize, engulfWick)
Checks if the current bar is a bearish engulfing candle
Parameters:
allowance (float) : (default=0) How many POINTS to allow the open to be off by (useful for markets with micro gaps)
rejectionWickSize (float) : (default=disabled) The maximum rejection wick size compared to the body as a percentage
engulfWick (bool) : (default=false) Does the engulfing candle require the wick to be engulfed as well?
Returns: A boolean - true if the current bar matches the requirements of a bearish engulfing candle
isInsideBar()
Detects inside bars
Returns: Returns true if the current bar is an inside bar
isOutsideBar()
Detects outside bars
Returns: Returns true if the current bar is an outside bar
barInSession(sess, useFilter)
Determines if the current price bar falls inside the specified session
Parameters:
sess (simple string) : The session to check
useFilter (bool) : (default=true) Whether or not to actually use this filter
Returns: A boolean - true if the current bar falls within the given time session
barOutSession(sess, useFilter)
Determines if the current price bar falls outside the specified session
Parameters:
sess (simple string) : The session to check
useFilter (bool) : (default=true) Whether or not to actually use this filter
Returns: A boolean - true if the current bar falls outside the given time session
dateFilter(startTime, endTime)
Determines if this bar's time falls within date filter range
Parameters:
startTime (int) : The UNIX date timestamp to begin searching from
endTime (int) : the UNIX date timestamp to stop searching from
Returns: A boolean - true if the current bar falls within the given dates
dayFilter(monday, tuesday, wednesday, thursday, friday, saturday, sunday)
Checks if the current bar's day is in the list of given days to analyze
Parameters:
monday (bool) : Should the script analyze this day? (true/false)
tuesday (bool) : Should the script analyze this day? (true/false)
wednesday (bool) : Should the script analyze this day? (true/false)
thursday (bool) : Should the script analyze this day? (true/false)
friday (bool) : Should the script analyze this day? (true/false)
saturday (bool) : Should the script analyze this day? (true/false)
sunday (bool) : Should the script analyze this day? (true/false)
Returns: A boolean - true if the current bar's day is one of the given days
atrFilter(atrValue, maxSize)
Parameters:
atrValue (float)
maxSize (float)
tradeCount()
Calculate total trade count
Returns: Total closed trade count
isLong()
Check if we're currently in a long trade
Returns: True if our position size is positive
isShort()
Check if we're currently in a short trade
Returns: True if our position size is negative
isFlat()
Check if we're currentlyflat
Returns: True if our position size is zero
wonTrade()
Check if this bar falls after a winning trade
Returns: True if we just won a trade
lostTrade()
Check if this bar falls after a losing trade
Returns: True if we just lost a trade
maxDrawdownRealized()
Gets the max drawdown based on closed trades (ie. realized P&L). The strategy tester displays max drawdown as open P&L (unrealized).
Returns: The max drawdown based on closed trades (ie. realized P&L). The strategy tester displays max drawdown as open P&L (unrealized).
totalPipReturn()
Gets the total amount of pips won/lost (as a whole number)
Returns: Total amount of pips won/lost (as a whole number)
longWinCount()
Count how many winning long trades we've had
Returns: Long win count
shortWinCount()
Count how many winning short trades we've had
Returns: Short win count
longLossCount()
Count how many losing long trades we've had
Returns: Long loss count
shortLossCount()
Count how many losing short trades we've had
Returns: Short loss count
breakEvenCount(allowanceTicks)
Count how many break-even trades we've had
Parameters:
allowanceTicks (float) : Optional - how many ticks to allow between entry & exit price (default 0)
Returns: Break-even count
longCount()
Count how many long trades we've taken
Returns: Long trade count
shortCount()
Count how many short trades we've taken
Returns: Short trade count
longWinPercent()
Calculate win rate of long trades
Returns: Long win rate (0-100)
shortWinPercent()
Calculate win rate of short trades
Returns: Short win rate (0-100)
breakEvenPercent(allowanceTicks)
Calculate break even rate of all trades
Parameters:
allowanceTicks (float) : Optional - how many ticks to allow between entry & exit price (default 0)
Returns: Break-even win rate (0-100)
averageRR()
Calculate average risk:reward
Returns: Average winning trade divided by average losing trade
unitsToLots(units)
(Forex) Convert the given unit count to lots (multiples of 100,000)
Parameters:
units (float) : The units to convert into lots
Returns: Units converted to nearest lot size (as float)
getFxPositionSize(balance, risk, stopLossPips, fxRate, lots)
(Forex) Calculate fixed-fractional position size based on given parameters
Parameters:
balance (float) : The account balance
risk (float) : The % risk (whole number)
stopLossPips (float) : Pip distance to base risk on
fxRate (float) : The conversion currency rate (more info below in library documentation)
lots (bool) : Whether or not to return the position size in lots rather than units (true by default)
Returns: Units/lots to enter into "qty=" parameter of strategy entry function
EXAMPLE USAGE:
string conversionCurrencyPair = (strategy.account_currency == syminfo.currency ? syminfo.tickerid : strategy.account_currency + syminfo.currency)
float fx_rate = request.security(conversionCurrencyPair, timeframe.period, close )
if (longCondition)
strategy.entry("Long", strategy.long, qty=zen.getFxPositionSize(strategy.equity, 1, stopLossPipsWholeNumber, fx_rate, true))
skipTradeMonteCarlo(chance, debug)
Checks to see if trade should be skipped to emulate rudimentary Monte Carlo simulation
Parameters:
chance (float) : The chance to skip a trade (0-1 or 0-100, function will normalize to 0-1)
debug (bool) : Whether or not to display a label informing of the trade skip
Returns: True if the trade is skipped, false if it's not skipped (idea being to include this function in entry condition validation checks)
fillCell(tableID, column, row, title, value, bgcolor, txtcolor, tooltip)
This updates the given table's cell with the given values
Parameters:
tableID (table) : The table ID to update
column (int) : The column to update
row (int) : The row to update
title (string) : The title of this cell
value (string) : The value of this cell
bgcolor (color) : The background color of this cell
txtcolor (color) : The text color of this cell
tooltip (string)
Returns: Nothing.
Time - Bar StatusCandlestick analysis
The Indicator "Bar Status" will display the current open candle state and the last three close candles state based on the logic below.
Abbreviations.
OC = Open Candle (if in no state listed below)
FB = False Break
BO = Break Out
IN = Inside Bar
FBR = False Break Reversal
Logic:
OC = This is the current open candle yet to close. Its status will change as it progresses through time until close.
Green False Break Revers (FBR) = bar Close is higher than previous bar Close AND bar High is higher than previous bar High AND bar Low is lower than previous bar Low.
Green False Break (FB) = bar Close is lower than previous bar High AND bar High is higher than previous bar High.
Green Breakout (BO) = bar Close is higher than previous bar Close AND bar High is higher than previous bar High.
Green Inside Bar (IN) = bar High is lower than previous bar High AND bar Low is higher than previous bar Low.
Red False Break Revers (FBR) = bar Close is lower than previous bar Close AND bar Low is lower than previous bar Low AND bar High is Higher than previous bar High.
Red False Break (FB) = bar Close is higher than previous bar Low AND bar Low is lower than previous bar Low.
Red Breakout (BO) = bar Close is lower than previous bar Close AND bar Low is lower than previous bar Low.
Red Inside Bar (IN) = bar High is lower than previous bar High AND bar Low is higher than previous bar Low.
The end column is the current open candle/bar.
The second from the end column is the last closed candle/bar.
The third from the end column is the second closed candle/bar.
The forth from the end column is the third closed candle/bar.
=============================================================
Also Includes candle countdown timer, of various candles. i.e. 4 hour, 1 hour, 15min, 5 min.
LYGLibraryLibrary "LYGLibrary"
A collection of custom tools & utility functions commonly used with my scripts
getDecimals()
Calculates how many decimals are on the quote price of the current market
Returns: The current decimal places on the market quote price
truncate(number, decimalPlaces)
Truncates (cuts) excess decimal places
Parameters:
number (float)
decimalPlaces (simple float)
Returns: The given number truncated to the given decimalPlaces
toWhole(number)
Converts pips into whole numbers
Parameters:
number (float)
Returns: The converted number
toPips(number)
Converts whole numbers back into pips
Parameters:
number (float)
Returns: The converted number
getPctChange(value1, value2, lookback)
Gets the percentage change between 2 float values over a given lookback period
Parameters:
value1 (float)
value2 (float)
lookback (int)
av_getPositionSize(balance, risk, stopPoints, conversionRate)
Calculates OANDA forex position size for AutoView based on the given parameters
Parameters:
balance (float)
risk (float)
stopPoints (float)
conversionRate (float)
Returns: The calculated position size (in units - only compatible with OANDA)
bullFib(priceLow, priceHigh, fibRatio)
Calculates a bullish fibonacci value
Parameters:
priceLow (float) : The lowest price point
priceHigh (float) : The highest price point
fibRatio (float) : The fibonacci % ratio to calculate
Returns: The fibonacci value of the given ratio between the two price points
bearFib(priceLow, priceHigh, fibRatio)
Calculates a bearish fibonacci value
Parameters:
priceLow (float) : The lowest price point
priceHigh (float) : The highest price point
fibRatio (float) : The fibonacci % ratio to calculate
Returns: The fibonacci value of the given ratio between the two price points
getMA(length, maType)
Gets a Moving Average based on type (MUST BE CALLED ON EVERY CALCULATION)
Parameters:
length (simple int)
maType (string)
Returns: A moving average with the given parameters
getEAP(atr)
Performs EAP stop loss size calculation (eg. ATR >= 20.0 and ATR < 30, returns 20)
Parameters:
atr (float)
Returns: The EAP SL converted ATR size
getEAP2(atr)
Performs secondary EAP stop loss size calculation (eg. ATR < 40, add 5 pips, ATR between 40-50, add 10 pips etc)
Parameters:
atr (float)
Returns: The EAP SL converted ATR size
barsAboveMA(lookback, ma)
Counts how many candles are above the MA
Parameters:
lookback (int)
ma (float)
Returns: The bar count of how many recent bars are above the MA
barsBelowMA(lookback, ma)
Counts how many candles are below the MA
Parameters:
lookback (int)
ma (float)
Returns: The bar count of how many recent bars are below the EMA
barsCrossedMA(lookback, ma)
Counts how many times the EMA was crossed recently
Parameters:
lookback (int)
ma (float)
Returns: The bar count of how many times price recently crossed the EMA
getPullbackBarCount(lookback, direction)
Counts how many green & red bars have printed recently (ie. pullback count)
Parameters:
lookback (int)
direction (int)
Returns: The bar count of how many candles have retraced over the given lookback & direction
getBodySize()
Gets the current candle's body size (in POINTS, divide by 10 to get pips)
Returns: The current candle's body size in POINTS
getTopWickSize()
Gets the current candle's top wick size (in POINTS, divide by 10 to get pips)
Returns: The current candle's top wick size in POINTS
getBottomWickSize()
Gets the current candle's bottom wick size (in POINTS, divide by 10 to get pips)
Returns: The current candle's bottom wick size in POINTS
getBodyPercent()
Gets the current candle's body size as a percentage of its entire size including its wicks
Returns: The current candle's body size percentage
isHammer(fib, colorMatch)
Checks if the current bar is a hammer candle based on the given parameters
Parameters:
fib (float)
colorMatch (bool)
Returns: A boolean - true if the current bar matches the requirements of a hammer candle
isStar(fib, colorMatch)
Checks if the current bar is a shooting star candle based on the given parameters
Parameters:
fib (float)
colorMatch (bool)
Returns: A boolean - true if the current bar matches the requirements of a shooting star candle
isDoji(wickSize, bodySize)
Checks if the current bar is a doji candle based on the given parameters
Parameters:
wickSize (float)
bodySize (float)
Returns: A boolean - true if the current bar matches the requirements of a doji candle
isBullishEC(allowance, rejectionWickSize, engulfWick)
Checks if the current bar is a bullish engulfing candle
Parameters:
allowance (float)
rejectionWickSize (float)
engulfWick (bool)
Returns: A boolean - true if the current bar matches the requirements of a bullish engulfing candle
isBearishEC(allowance, rejectionWickSize, engulfWick)
Checks if the current bar is a bearish engulfing candle
Parameters:
allowance (float)
rejectionWickSize (float)
engulfWick (bool)
Returns: A boolean - true if the current bar matches the requirements of a bearish engulfing candle
isInsideBar()
Detects inside bars
Returns: Returns true if the current bar is an inside bar
isOutsideBar()
Detects outside bars
Returns: Returns true if the current bar is an outside bar
barInSession(sess, useFilter)
Determines if the current price bar falls inside the specified session
Parameters:
sess (simple string)
useFilter (bool)
Returns: A boolean - true if the current bar falls within the given time session
barOutSession(sess, useFilter)
Determines if the current price bar falls outside the specified session
Parameters:
sess (simple string)
useFilter (bool)
Returns: A boolean - true if the current bar falls outside the given time session
dateFilter(startTime, endTime)
Determines if this bar's time falls within date filter range
Parameters:
startTime (int)
endTime (int)
Returns: A boolean - true if the current bar falls within the given dates
dayFilter(monday, tuesday, wednesday, thursday, friday, saturday, sunday)
Checks if the current bar's day is in the list of given days to analyze
Parameters:
monday (bool)
tuesday (bool)
wednesday (bool)
thursday (bool)
friday (bool)
saturday (bool)
sunday (bool)
Returns: A boolean - true if the current bar's day is one of the given days
atrFilter(atrValue, maxSize)
Parameters:
atrValue (float)
maxSize (float)
fillCell(tableID, column, row, title, value, bgcolor, txtcolor)
This updates the given table's cell with the given values
Parameters:
tableID (table)
column (int)
row (int)
title (string)
value (string)
bgcolor (color)
txtcolor (color)
Returns: A boolean - true if the current bar falls within the given dates
Library CommonLibrary "LibraryCommon"
A collection of custom tools & utility functions commonly used with my scripts
@description TODO: add library description here
getDecimals() Calculates how many decimals are on the quote price of the current market
Returns: The current decimal places on the market quote price
truncate(float, float) Truncates (cuts) excess decimal places
Parameters:
float : number The number to truncate
float : decimalPlaces (default=2) The number of decimal places to truncate to
Returns: The given number truncated to the given decimalPlaces
toWhole(float) Converts pips into whole numbers
Parameters:
float : number The pip number to convert into a whole number
Returns: The converted number
toPips(float) Converts whole numbers back into pips
Parameters:
float : number The whole number to convert into pips
Returns: The converted number
getPctChange(float, float, int) Gets the percentage change between 2 float values over a given lookback period
Parameters:
float : value1 The first value to reference
float : value2 The second value to reference
int : lookback The lookback period to analyze
av_getPositionSize(float, float, float, float) Calculates OANDA forex position size for AutoView based on the given parameters
Parameters:
float : balance The account balance to use
float : risk The risk percentage amount (as a whole number - eg. 1 = 1% risk)
float : stopPoints The stop loss distance in POINTS (not pips)
float : conversionRate The conversion rate of our account balance currency
Returns: The calculated position size (in units - only compatible with OANDA)
bullFib(priceLow, priceHigh, fibRatio) Calculates a bullish fibonacci value
Parameters:
priceLow : The lowest price point
priceHigh : The highest price point
fibRatio : The fibonacci % ratio to calculate
Returns: The fibonacci value of the given ratio between the two price points
bearFib(priceLow, priceHigh, fibRatio) Calculates a bearish fibonacci value
Parameters:
priceLow : The lowest price point
priceHigh : The highest price point
fibRatio : The fibonacci % ratio to calculate
Returns: The fibonacci value of the given ratio between the two price points
getMA(int, string) Gets a Moving Average based on type (MUST BE CALLED ON EVERY CALCULATION)
Parameters:
int : length The MA period
string : maType The type of MA
Returns: A moving average with the given parameters
getEAP(float) Performs EAP stop loss size calculation (eg. ATR >= 20.0 and ATR < 30, returns 20)
Parameters:
float : atr The given ATR to base the EAP SL calculation on
Returns: The EAP SL converted ATR size
getEAP2(float) Performs secondary EAP stop loss size calculation (eg. ATR < 40, add 5 pips, ATR between 40-50, add 10 pips etc)
Parameters:
float : atr The given ATR to base the EAP SL calculation on
Returns: The EAP SL converted ATR size
barsAboveMA(int, float) Counts how many candles are above the MA
Parameters:
int : lookback The lookback period to look back over
float : ma The moving average to check
Returns: The bar count of how many recent bars are above the MA
barsBelowMA(int, float) Counts how many candles are below the MA
Parameters:
int : lookback The lookback period to look back over
float : ma The moving average to reference
Returns: The bar count of how many recent bars are below the EMA
barsCrossedMA(int, float) Counts how many times the EMA was crossed recently
Parameters:
int : lookback The lookback period to look back over
float : ma The moving average to reference
Returns: The bar count of how many times price recently crossed the EMA
getPullbackBarCount(int, int) Counts how many green & red bars have printed recently (ie. pullback count)
Parameters:
int : lookback The lookback period to look back over
int : direction The color of the bar to count (1 = Green, -1 = Red)
Returns: The bar count of how many candles have retraced over the given lookback & direction
getBodySize() Gets the current candle's body size (in POINTS, divide by 10 to get pips)
Returns: The current candle's body size in POINTS
getTopWickSize() Gets the current candle's top wick size (in POINTS, divide by 10 to get pips)
Returns: The current candle's top wick size in POINTS
getBottomWickSize() Gets the current candle's bottom wick size (in POINTS, divide by 10 to get pips)
Returns: The current candle's bottom wick size in POINTS
getBodyPercent() Gets the current candle's body size as a percentage of its entire size including its wicks
Returns: The current candle's body size percentage
isHammer(float, bool) Checks if the current bar is a hammer candle based on the given parameters
Parameters:
float : fib (default=0.382) The fib to base candle body on
bool : colorMatch (default=false) Does the candle need to be green? (true/false)
Returns: A boolean - true if the current bar matches the requirements of a hammer candle
isStar(float, bool) Checks if the current bar is a shooting star candle based on the given parameters
Parameters:
float : fib (default=0.382) The fib to base candle body on
bool : colorMatch (default=false) Does the candle need to be red? (true/false)
Returns: A boolean - true if the current bar matches the requirements of a shooting star candle
isDoji(float, bool) Checks if the current bar is a doji candle based on the given parameters
Parameters:
float : wickSize (default=2) The maximum top wick size compared to the bottom (and vice versa)
bool : bodySize (default=0.05) The maximum body size as a percentage compared to the entire candle size
Returns: A boolean - true if the current bar matches the requirements of a doji candle
isBullishEC(float, float, bool) Checks if the current bar is a bullish engulfing candle
Parameters:
float : allowance (default=0) How many POINTS to allow the open to be off by (useful for markets with micro gaps)
float : rejectionWickSize (default=disabled) The maximum rejection wick size compared to the body as a percentage
bool : engulfWick (default=false) Does the engulfing candle require the wick to be engulfed as well?
Returns: A boolean - true if the current bar matches the requirements of a bullish engulfing candle
isBearishEC(float, float, bool) Checks if the current bar is a bearish engulfing candle
Parameters:
float : allowance (default=0) How many POINTS to allow the open to be off by (useful for markets with micro gaps)
float : rejectionWickSize (default=disabled) The maximum rejection wick size compared to the body as a percentage
bool : engulfWick (default=false) Does the engulfing candle require the wick to be engulfed as well?
Returns: A boolean - true if the current bar matches the requirements of a bearish engulfing candle
isInsideBar() Detects inside bars
Returns: Returns true if the current bar is an inside bar
isOutsideBar() Detects outside bars
Returns: Returns true if the current bar is an outside bar
barInSession(string, bool) Determines if the current price bar falls inside the specified session
Parameters:
string : sess The session to check
bool : useFilter (default=true) Whether or not to actually use this filter
Returns: A boolean - true if the current bar falls within the given time session
barOutSession(string, bool) Determines if the current price bar falls outside the specified session
Parameters:
string : sess The session to check
bool : useFilter (default=true) Whether or not to actually use this filter
Returns: A boolean - true if the current bar falls outside the given time session
dateFilter(int, int) Determines if this bar's time falls within date filter range
Parameters:
int : startTime The UNIX date timestamp to begin searching from
int : endTime the UNIX date timestamp to stop searching from
Returns: A boolean - true if the current bar falls within the given dates
dayFilter(bool, bool, bool, bool, bool, bool, bool) Checks if the current bar's day is in the list of given days to analyze
Parameters:
bool : monday Should the script analyze this day? (true/false)
bool : tuesday Should the script analyze this day? (true/false)
bool : wednesday Should the script analyze this day? (true/false)
bool : thursday Should the script analyze this day? (true/false)
bool : friday Should the script analyze this day? (true/false)
bool : saturday Should the script analyze this day? (true/false)
bool : sunday Should the script analyze this day? (true/false)
Returns: A boolean - true if the current bar's day is one of the given days
atrFilter()
fillCell()
FVG Diamond📊 Overview
FVG Diamond is an advanced indicator that detects three specific price action patterns: Inside Bar, Outside Bar, and Diamond Formation. Unlike basic FVG tools, it focuses on these higher-level setups for more precise analysis.
✨ Key Features
🎯 Detection of 3 Advanced FVG Pattern Types
Independent on/off toggle for each pattern
Inside FVG (Inside Bar / Harami): The body of the 3rd candle forms an inside bar relative to the 2nd candle
Outside FVG (Outside Bar / Engulfing): The body of the 1st candle forms an outside bar relative to the 2nd candle
Diamond FVG (Diamond Formation): A unique pattern that satisfies both Inside and Outside conditions
🎯 Mitigation Feature
ON: FVG boxes are automatically removed once price fully fills the FVG zone (keeps the chart clean by showing only active FVGs)
OFF: FVG boxes remain on the chart indefinitely (allows full historical review of all FVGs)
🎨 Visual Features
Color Coding: Assign unique colors to each pattern type
Transparency Control: Default 70% transparency for optimal readability
Extension Display: Extend the right edge of FVG boxes for any number of bars
⚙️ Advanced Configuration
Threshold Settings
Manual Threshold: Define a minimum gap size by percentage
Auto Threshold: Dynamically adjusts based on market volatility
Mitigation Tools
Real-Time Mitigation: Automatic removal when price fills an FVG zone
Mitigation Levels: Display filled FVG levels with dashed lines
🔔 Alerts
Notification on new Bullish/Bearish FVG detection
Notification when an FVG is mitigated (filled)
Works with all FVG types
📈 How to Use
Add the indicator to your chart
The three advanced FVG patterns will be detected and displayed automatically
Set your preferred threshold (0% = detect all gaps)
⚠️ Note: This indicator is designed as an analysis support tool. Trading decisions should be made in combination with other methods of technical and fundamental analysis.
Author: omochi_
Version: 1.0
Last Updated: September 28, 2025
BOLLINGER BY HARSH### Description for the Indicator:
**Advanced Bollinger Bands + Inside Bar Signals**
This indicator is a versatile trading tool designed for precision and reliability, combining the power of Bollinger Bands with Inside Bar pattern detection and trend filtering. It offers traders a unique way to identify high-probability trading opportunities by integrating multiple market analysis techniques.
#### Key Features:
1. **Bollinger Bands:**
- Measures market volatility and identifies potential reversal zones.
- Upper and lower bands act as dynamic support and resistance levels.
2. **Inside Bar Pattern Detection:**
- Highlights areas of market consolidation and potential breakout setups.
- Displays inside bars directly on the chart for easy visualization.
3. **Trend Detection:**
- Uses an EMA (Exponential Moving Average) to determine market direction.
- Only signals trades aligned with the prevailing trend for better accuracy.
4. **Session Filter:**
- Allows you to restrict signals to specific trading sessions.
- Helps avoid false signals during low-liquidity periods.
5. **Advanced Buy & Sell Signals:**
- Buy signals: Inside bar near the lower Bollinger Band in an uptrend.
- Sell signals: Inside bar near the upper Bollinger Band in a downtrend.
- Reduces noise and focuses on high-quality setups.
6. **Risk Management Tools:**
- Automatically calculates take-profit and stop-loss levels based on ATR (Average True Range).
- Plots these levels on the chart to help traders manage risk effectively.
7. **Alerts for Signals:**
- Get notified instantly for buy and sell opportunities via TradingView alerts.
Optimus trader Optimus Trader
Indicator Description:
The Optimus Trader indicator is designed for technical traders looking for entry and exit points in financial markets. It combines signals based on volume, moving averages, VWAP (Volume Weighted Average Price), as well as the recognition of candlestick patterns such as Pin Bar and Inside Bars. This indicator helps identify opportune moments to buy or sell based on trends, volumes, and recent liquidity zones.
Parameters and Features:
1. Simple Moving Average (MA) and VWAP:
- Optimus Trader uses a 50-period simple moving average to determine the underlying trend. It also includes VWAP for precise price analysis based on traded volumes.
- These two indicators help identify whether the market is in an uptrend or downtrend, enhancing the reliability of buy and sell signals.
2. Volume :
- To avoid false signals, a volume threshold is set using a 20-period moving average, adjusted to 1.2 times the average volume. This filters signals by considering only high-volume periods, indicating heightened market interest.
3. Candlestick Pattern Recognition:
- Pin Bar: This sought-after candlestick pattern is detected for both bullish and bearish setups. A bullish or bearish *Pin Bar* often signals a possible reversal or continuation.
- *Inside Bar*: This price compression pattern is also detected, indicating a zone of indecision before a potential movement.
4. Trend:
- An uptrend is confirmed when the price is above the MA and VWAP, while a downtrend is identified when the price is below both indicators.
5. Liquidity Zones:
- Optimus Trader includes an approximate liquidity zone detection feature. By identifying recent support and resistance levels, the indicator detects if the price is near these zones. This feature strengthens the relevance of buy or sell signals.
6. Buy and Sell Signals:
- Buy: A buy signal is generated when the indicator detects a bullish *Pin Bar* or *Inside Bar* in an uptrend with high volume, and the price is close to a liquidity zone.
- Sell: A sell signal is generated when a bearish *Pin Bar* or *Inside Bar* is detected in a downtrend with high volume, and the price is near a liquidity zone.
Signal Display:
The signals are visible directly on the chart:
- A "BUY" label in green is displayed below the bar for buy signals.
- A "SELL" label in red is displayed above the bar for sell signals.
Summary:
This indicator is intended for traders seeking precise entry and exit points by integrating trend analysis, volume, and candlestick patterns. With liquidity zones, *Optimus Trader* helps minimize false signals, providing clear and accurate alerts.
---
This description can be directly added to TradingView to help users quickly understand the features and logic of this indicator.
The Strat Candle State Table (Two Symbols)The Strat Candle State Table (Two Symbols) – Multi-Timeframe Analysis
This advanced indicator is designed for traders who follow The Strat methodology, providing a quick, clear, and actionable view of candle states across two selected symbols and a chosen timeframe. It allows you to seamlessly integrate multi-symbol analysis into your trading, offering real-time insights into price action and market momentum based on **The Strat’s** powerful principles.
What It Does:
For each selected symbol, the indicator retrieves and analyzes the price data for three candles:
- Candle 1 (C1): The third candle from the current one.
- Candle 2 (C2): The candle directly before the current one (previous candle).
- Current Candle (CC): The live candle, which is still forming.
Using this information, it plots the Scenario 1 (Inside Bar), Scenario 2 (Directional), and **Scenario 3 (Outside Bar)** states for each candle, color-coding them to help you quickly assess market conditions and price action.
Strat Candle States:
- Scenario 1 (Inside Bar): The candle stays within the high and low of the previous candle (indicating consolidation or indecision).
- Scenario 2 (Directional)* The candle breaks either the high (2-up) or low (2-down) of the previous candle, indicating potential continuation in that direction.
- Scenario 3 (Outside Bar): The candle breaks both the high and low of the previous candle, signaling increased volatility and a potential reversal.
Customizable Color Scheme:
The default colors follow these settings (but can be changed to your preference):
- 1U (Inside and Up): Yellow (indicating an inside bar that closed higher).
- 1D (Inside and Down): Orange (indicating an inside bar that closed lower).
- 2U (Two Up): Green if the candle closes higher, Red if the candle closes lower (conflict).
- 2D (Two Down): Red if the candle closes lower, Green if the candle closes higher (conflict).
- 3U (Three Up): Lighter Purple.
- 3D (Three Down): Darker Purple/Magenta.
Each state is dynamically updated based on the actual price action and whether the candle closes above or below the open. Conflict candles (like a 2-up closing red or 2-down closing green) are highlighted, making it easier to spot potential reversals or weakness in the trend.
Timeframe Flexibility:
You can overlay this indicator on any chart regardless of the timeframe. The key is to select the timeframe you want the indicator to plot for when setting up. Whether you're working on a 5-minute chart, daily, or even weekly, the indicator will analyze the candles according to the selected timeframe, giving you the versatility to adapt it to various trading strategies.
Powerful Use Cases:
1. Multi-Symbol Analysis in Real-Time: The Strat Candle State Table displays the candle states for two symbols at once, helping you track multiple instruments without switching charts. This is extremely useful when monitoring correlated assets like SPY and QQQ, or sector-related pairs such as DIA and IWM
2. Seamless Top-Down View: By analyzing the three most recent candles (C1, C2, and the current candle), the indicator allows you to maintain a top-down perspective on price action, spotting setups early and tracking candle state changes across different symbols and timeframes.
3. Enhanced Conflict Detection: The background shading automatically adjusts for conflict candles, such as a 2-up that closes red or a 2-down that closes green. This provides a quick visual cue to warn you when the current trend may be weakening or reversing.
4. Trade Execution Precision: With this table providing constant feedback on price action and candle state, traders can more easily time their entries and exits, whether they are looking for reversals or continuations
5. Focus on Timeframe Continuity: Use this indicator to stay in alignment with The Strat's Timeframe Continuity, ensuring you are trading in the direction of the most aligned candles, across both symbols. This allows for more precise trade management and higher-probability setups.
6. Customizable to Your Strategy: Change the color coding and candle states to match your personal preferences or trading strategy, making this indicator adaptable to your specific needs.
Most Powerful Use Case – Simultaneous Break Detection:
The Strat Candle State Table shines in setups where simultaneous breaks are being monitored across multiple symbols. For example, if both symbols trigger a 2-up or 3-up at the same time, this confirms that momentum is flowing in the same direction for multiple instruments, giving you stronger trade conviction.
By seeing real-time data for two key symbols, you can ensure that you're catching simultaneous breaks, where multiple instruments are signaling the same move. This can be especially effective in index-based trading, where the strength or weakness of multiple sectors or assets must align for a higher probability of success






















